1. Field of the Invention
The present invention relates to the field of analytically modeling data organized and stored in a relational database.
2. Description of the Prior Art
Online analytical processing (OLAP) is a key part of many data warehouse and business analysis systems. OLAP services provide for fast analysis of multidimensional information. For this purpose, OLAP services provide for multidimensional access and navigation of data in an intuitive and natural way, providing a global view of data that can be drilled down into particular data of interest. Speed and response time are important attributes of OLAP services that allow users to browse and analyze data online in an efficient manner. Further, OLAP services typically provide analytical tools to rank, aggregate, and calculate lead and lag indicators for the data under analysis.
In this context, an OLAP cube may be modeled according to a user's perception of the data. The cube may have multiple dimensions, each dimension modeled according to attributes of the data. Typically, there is a hierarchy associated with each dimension. For example, a time dimension can consist of years subdivided into months subdivided into weeks subdivided into days, while a geography dimension can consist of countries subdivided into states subdivided into cities. Dimension members act as indices for identifying a particular cell or range of cells within the cube.
OLAP services are often used to analytically model data that is stored in a relational database such as, for example, an Online Transactional Processing (OLTP) database. Data stored in a relational database may be organized according to multiple tables with each table having data corresponding to a particular data type. A table corresponding to a particular data type may be organized according to columns corresponding to data attributes. For example, data corresponding to the type “Sales” may be organized in a “Sales” table with columns “Customer ID” “Product ID” and “Sale Amount”. Data corresponding to the type “Forecast” may be organized in a “Forecast” table with columns “Product Category ID” and “Forecast Amount”. Unlike the “Sales” table, the “Forecast” table does not include a “Customer ID” column because forecast data for particular customers is unknown.
Related to the concept of analytically modeling data is the concept of a “measure”. Such a measure is an attribute that measures a data type according to other attributes. For example, in the “Sales” table, the attribute “Sale Amount” is a measure for sales, and, in the “Forecast” table, the attribute “Forecast Amount” is a measure for forecast. Measures which are organized according to common attributes may comprise a measure group, while measures which are organized according to different attributes may comprise different measure groups. For example, the measure “Sale Amount” may belong to a “Sales” measure group with the attributes “Customer” and “Product”, while the measure “Forecast Amount” may belong to a “Forecast” measure group with only the attribute “Product”.
In an OLAP environment, it is often desirable to obtain a single view of data from different measure groups. For example, it may be desirable to obtain a single view of both “Sales” data and “Forecast” data to analyze forecasted sales by customer. In conventional OLAP systems, however, to obtain such a single view, data from each measure group must be modeled onto separate “underlying” cubes, and the underlying cubes must be combined into a “virtual cube”. Modeling such multiple underlying and virtual cubes introduces several drawbacks. For example, processing involved with defining and maintaining multiple cubes results in significant overhead. Furthermore, changes to an underlying cube must be redundantly propagated at the virtual cube. Accordingly, a need exists for systems and methods for analytically modeling data from different measure groups onto a single cube.